/*
 * CodeProcessGeneratorSingle.java	 
 *
 * Copyright 2012 Universidad Francisco de Paula Santander (UFPS).
 * Todos los Derechos Reservados.
 * Creado el 07/10/12, 11:23:38 AM
 */
package com.ufps.cuatro.util.generadores.codeobject;

import java.util.ArrayList;

/**
 * <i><b>CodeProcessGeneratorSingle:</b></i><p>Define los Métodos que se requieren
 * para la implementación de los Controles en la Generación del Código Fuente.</p> 
 * 
 * @author Carlos A. Torres C. - Dolly E. Guerrero. <https://code.google.com/p/tesis4dor/>
 * @version 1.0 07/10/12
 */
public interface CodeProcessGeneratorSingle {    
    /**
     * Devuelve el Código Fuente de los Import que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxImport(ArrayList<CodeContextLine> objSourceLinesCode);    
    /**
     * Devuelve el Código Fuente de las Definiciones de Propiedades que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     * @param canonicalDefinition Determina el Tipo de Generación del Código Fuente en la Definiciones de Tipos de Datos. 
     */
    public void generateSourceCodeSyntaxDefinition(ArrayList<CodeContextLine> objSourceLinesCode, boolean canonicalDefinition);    
    /**
     * Devuelve el Código Fuente de las Inicializaciones de las Propiedades que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     * @param canonicalDefinition Determina el Tipo de Generación del Código Fuente en la Definiciones de Tipos de Datos. 
     */
    public void generateSourceCodeSyntaxInitialization(ArrayList<CodeContextLine> objSourceLinesCode, boolean canonicalDefinition);    
    /**
     * Devuelve el Código Fuente de las Inicializaciones de las Propiedades de los Controles que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     * @param canonicalDefinition Determina el Tipo de Generación del Código Fuente en la Definiciones de Tipos de Datos. 
     */
    public void generateSourceCodeSyntaxInitializationPropertiesControls(ArrayList<CodeContextLine> objSourceLinesCode, boolean canonicalDefinition);
    /**
     * Devuelve el Código Fuente de las Reglas de Distribución de los Controles que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     * @param canonicalDefinition Determina el Tipo de Generación del Código Fuente en la Definiciones de Tipos de Datos. 
     */
    public void generateSourceCodeSyntaxInitializationGridBagConstraintsControls(ArrayList<CodeContextLine> objSourceLinesCode, boolean canonicalDefinition);    
    /**
     * Devuelve el Código Fuente de las Definiciones de los Eventos de los Controles que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     * @param canonicalDefinition Determina el Tipo de Generación del Código Fuente en la Definiciones de Tipos de Datos. 
     */
    public void generateSourceCodeSyntaxControlsEventsDefinition(ArrayList<CodeContextLine> objSourceLinesCode, boolean canonicalDefinition);    
    /**
     * Devuelve el Código Fuente de las Implementaciones de las Funciones de los Eventos de los Controles que se requieren en la Generación de la Clase Procesada.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     * @param canonicalDefinition Determina el Tipo de Generación del Código Fuente en la Definiciones de Tipos de Datos. 
     */
    public void generateSourceCodeSyntaxControlsEventsImplement(ArrayList<CodeContextLine> objSourceLinesCode, boolean canonicalDefinition);    
}
